package io.yizoo.system.mapper;

import org.apache.ibatis.annotations.DeleteProvider;
import org.apache.ibatis.annotations.SelectProvider;
import org.apache.ibatis.annotations.UpdateProvider;

import java.util.List;
import java.util.Map;

public interface sys_flowMapper {

    //根据节点实例ID和相应的fw_flowins_user表记录，查找节点参与者对应的sys_user表记录id
    @SelectProvider(type = sys_flowMapperProvider.class, method = "GetUserIdByNodeInsIdAndNodeinsUser")
    List<Map<String, Object>> GetUserIdByNodeInsIdAndNodeinsUser(Map<String, Object> factor);
    //对于 GetUserIdByNodeInsIdAndNodeinsUser 函数查找到的用户ID，进一步求其直接上级
    @SelectProvider(type = sys_flowMapperProvider.class, method = "GetUserIdByNodeInsIdAndNodeinsUser_Zjsj")
    List<Map<String, Object>> GetUserIdByNodeInsIdAndNodeinsUser_Zjsj(Map<String, Object> factor);

    @SelectProvider(type = sys_flowMapperProvider.class, method = "GetUserTaskRunning")
    List<Map<String, Object>> GetUserTaskRunning(Map<String, Object> factor);
    @SelectProvider(type = sys_flowMapperProvider.class, method = "GetUserTaskRunningCount")
    List<Map<String, Object>> GetUserTaskRunningCount(Map<String, Object> factor);

    @SelectProvider(type = sys_flowMapperProvider.class, method = "GetUserTaskCompleted")
    List<Map<String, Object>> GetUserTaskCompleted(Map<String, Object> factor);
    @SelectProvider(type = sys_flowMapperProvider.class, method = "GetUserTaskCompletedCount")
    List<Map<String, Object>> GetUserTaskCompletedCount(Map<String, Object> factor);

    @SelectProvider(type = sys_flowMapperProvider.class, method = "GetUserTask")
    List<Map<String, Object>> GetUserTask(Map<String, Object> factor);
    @SelectProvider(type = sys_flowMapperProvider.class, method = "GetUserTaskCount")
    List<Map<String, Object>> GetUserTaskCount(Map<String, Object> factor);
    @SelectProvider(type = sys_flowMapperProvider.class, method = "SearchNodeinsPerson")
    List<Map<String, Object>> SearchNodeinsPerson(Map<String, Object> factor);

    @SelectProvider(type = sys_flowMapperProvider.class, method = "GetFlowinsInfo_InitByUser")
    List<Map<String, Object>> GetFlowinsInfo_InitByUser(Map<String, Object> factor);
    @SelectProvider(type = sys_flowMapperProvider.class, method = "GetFlowinsInfo_InitByUser_Count")
    List<Map<String, Object>> GetFlowinsInfo_InitByUser_Count(Map<String, Object> factor);

    @SelectProvider(type = sys_flowMapperProvider.class, method = "FlowSecFormTable_SelectByFlowinsId")
    List<Map<String, Object>> FlowSecFormTable_SelectByFlowinsId(Map<String, Object> factor);

    @SelectProvider(type = sys_flowMapperProvider.class, method = "FlowSecFormTable_Select")
    List<Map<String, Object>> FlowSecFormTable_Select(Map<String, Object> factor);
    @SelectProvider(type = sys_flowMapperProvider.class, method = "FlowSecFormTable_Select_Count")
    List<Map<String, Object>> FlowSecFormTable_Select_Count(Map<String, Object> factor);

    @SelectProvider(type = sys_flowMapperProvider.class, method = "FlowSecFormTable_Select_GetTask")
    List<Map<String, Object>> FlowSecFormTable_Select_GetTask(Map<String, Object> factor);
    @SelectProvider(type = sys_flowMapperProvider.class, method = "FlowSecFormTable_Select_GetTaskCount")
    List<Map<String, Object>> FlowSecFormTable_Select_GetTaskCount(Map<String, Object> factor);

    @DeleteProvider (type = sys_flowMapperProvider.class, method = "FlowSecFormTable_Delete")
    int FlowSecFormTable_Delete(Map<String, Object> factor);

    @SelectProvider(type = sys_flowMapperProvider.class, method = "FindTableByName")
    List<Map<String, Object>> FindTableByName(Map<String, Object> factor);
    @UpdateProvider(type = sys_flowMapperProvider.class, method = "DDL_CreateTable_FlowSecForm")
    int DDL_CreateTable_FlowSecForm(Map<String, Object> factor);
    @UpdateProvider(type = sys_flowMapperProvider.class, method = "DDL_AddTableColumn_FlowSecForm_100")
    int DDL_AddTableColumn_FlowSecForm_100(Map<String, Object> factor);
    @UpdateProvider(type = sys_flowMapperProvider.class, method = "DDL_AddTableColumn_FlowSecForm_1000")
    int DDL_AddTableColumn_FlowSecForm_1000(Map<String, Object> factor);
    @UpdateProvider(type = sys_flowMapperProvider.class, method = "DDL_ChangeTableColumnType_FlowSecForm_1000")
    int DDL_ChangeTableColumnType_FlowSecForm_1000(Map<String, Object> factor);
    @UpdateProvider(type = sys_flowMapperProvider.class, method = "DDL_ChangeTableColumnType_FlowSecForm_100")
    int DDL_ChangeTableColumnType_FlowSecForm_100(Map<String, Object> factor);
    @UpdateProvider(type = sys_flowMapperProvider.class, method = "DDL_DropTableColumn_FlowSecForm")
    int DDL_DropTableColumn_FlowSecForm(Map<String, Object> factor);
    @UpdateProvider(type = sys_flowMapperProvider.class, method = "DDL_DropTable_FlowSecForm")
    int DDL_DropTable_FlowSecForm(Map<String, Object> factor);
}
